package com.example.demo.model.dto;

import com.example.demo.model.entity.audit.AuditRecord;
import com.example.demo.model.enums.AuditResult;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * 论文审核请求数据传输对象
 */
@Data
public class PaperAuditRequest {

    /**
     * 审核结果（必填）
     */
    @NotNull(message = "审核结果不能为空")
    private AuditResult result;

    /**
     * 审核意见（选填）
     */
    private String comment;

    /**
     * 将DTO转换为AuditRecord实体
     * @param paperId 论文ID
     * @param auditorId 审核人ID
     * @return AuditRecord实体
     */
    public AuditRecord toAuditRecord(Long paperId, Long auditorId) {
        return AuditRecord.builder()
                .achievementId(paperId)
                .auditUserId(auditorId)
                .auditResult(this.result)
                .auditComment(this.comment)
                .auditTime(LocalDateTime.now())
                .build();
    }
}